/**
 * 活跃ip Api
 * @type {SlogHotIpApi}
 */
const slogHotIpApi = new class SlogHotIpApi extends BaseApi {
    constructor() {
        super({
            url: '/api/slogHotIp',
            exp: true,
        })
    }

    /**
     * 上报
     * @param reportData 上报参数
     * @param {Array.<String>} reportData.ids 上报的活跃 ip 的 id 数组
     * @param {String} reportData.msgInfo 上报的备注
     * @returns {Promise.<Result.<Boolean>>}
     */
    async report(reportData) {
        return (await rxajax.post(this.using('/report'), reportData, {type: 'json'})).data
    }

    /**
     * 处置
     * @param dealData 处置参数
     * @param dealData.ids 处置的活跃 ip 的 id 数组
     * @param dealData.msgInfo 处置的备注
     * @param dealData.dealResultStatus 处置的状态
     * @param dealData.dealStatusAction 处置的操作
     * @returns {Promise.<Result.<Boolean>>}
     */
    async deal(dealData) {
        return (await rxajax.post(this.using('/handle'), dealData, {type: 'json'})).data
    }

    /**
     * 取消处置
     * @param cancelDealData 取消处置参数
     * @param cancelDealData.ids 取消处置的活跃 ip 的 id 数组
     * @param cancelDealData.msgInfo 取消处置的备注
     * @param cancelDealData.dealResultStatus 取消处置的状态
     * @param cancelDealData.dealStatusAction 取消处置的操作
     * @returns {Promise.<Result.<Boolean>>}
     */
    async cancelDeal(cancelDealData) {
        return (await rxajax.post(this.using('/cancel-handle'), cancelDealData, {type: 'json'})).data
    }

    async notReportTotal() {
        return (await rxajax.get(this.using('/not-report-total'))).data.data
    }
}()